diff options
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SettingsViewModel.kt')
-rw-r--r-- | src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SettingsViewModel.kt | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SettingsViewModel.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SettingsViewModel.kt index a0cb7225f..d16d15fa6 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SettingsViewModel.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/SettingsViewModel.kt @@ -5,13 +5,19 @@ package org.yuzu.yuzu_emu.model import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel +import org.yuzu.yuzu_emu.R +import org.yuzu.yuzu_emu.YuzuApplication +import org.yuzu.yuzu_emu.features.settings.model.view.SettingsItem -class SettingsViewModel : ViewModel() { +class SettingsViewModel(private val savedStateHandle: SavedStateHandle) : ViewModel() { var game: Game? = null var shouldSave = false + var clickedItem: SettingsItem? = null + private val _toolbarTitle = MutableLiveData("") val toolbarTitle: LiveData<String> get() = _toolbarTitle @@ -30,6 +36,12 @@ class SettingsViewModel : ViewModel() { private val _isUsingSearch = MutableLiveData(false) val isUsingSearch: LiveData<Boolean> get() = _isUsingSearch + val sliderProgress = savedStateHandle.getStateFlow(KEY_SLIDER_PROGRESS, -1) + + val sliderTextValue = savedStateHandle.getStateFlow(KEY_SLIDER_TEXT_VALUE, "") + + val adapterItemChanged = savedStateHandle.getStateFlow(KEY_ADAPTER_ITEM_CHANGED, -1) + fun setToolbarTitle(value: String) { _toolbarTitle.value = value } @@ -54,8 +66,31 @@ class SettingsViewModel : ViewModel() { _isUsingSearch.value = value } + fun setSliderTextValue(value: Float, units: String) { + savedStateHandle[KEY_SLIDER_PROGRESS] = value + savedStateHandle[KEY_SLIDER_TEXT_VALUE] = String.format( + YuzuApplication.appContext.getString(R.string.value_with_units), + value.toInt().toString(), + units + ) + } + + fun setSliderProgress(value: Float) { + savedStateHandle[KEY_SLIDER_PROGRESS] = value + } + + fun setAdapterItemChanged(value: Int) { + savedStateHandle[KEY_ADAPTER_ITEM_CHANGED] = value + } + fun clear() { game = null shouldSave = false } + + companion object { + const val KEY_SLIDER_TEXT_VALUE = "SliderTextValue" + const val KEY_SLIDER_PROGRESS = "SliderProgress" + const val KEY_ADAPTER_ITEM_CHANGED = "AdapterItemChanged" + } } |